vt-d: fix Dom0 S3 resume.
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 3 Sep 2009 08:51:37 +0000 (09:51 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 3 Sep 2009 08:51:37 +0000 (09:51 +0100)
When resuming from Dom0 S3, here 'irq' is -1, so we can't use it at
all. We should always use iommu->irq.

With the patch applied on the current tip 20153 and using the 2.6.18
Dom0, Dom0 S3 works fine (at least on my DQ35).

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
xen/drivers/passthrough/vtd/iommu.c

index 2f045b4dff3ff5fade48ca6b052f2242bb571102..b5131d86df98c91a8a424245c96c6ac04de42960 100644 (file)
@@ -1602,7 +1602,7 @@ static int init_vtd_hw(void)
     struct acpi_drhd_unit *drhd;
     struct iommu *iommu;
     struct iommu_flush *flush = NULL;
-    int irq = -1;
+    int irq;
     int ret;
     unsigned long flags;
     struct irq_cfg *cfg;
@@ -1621,8 +1621,8 @@ static int init_vtd_hw(void)
             iommu->irq = irq;
         }
 
-        cfg = irq_cfg(irq);
-        dma_msi_set_affinity(irq, cfg->domain);
+        cfg = irq_cfg(iommu->irq);
+        dma_msi_set_affinity(iommu->irq, cfg->domain);
 
         clear_fault_bits(iommu);